Jump To:
Technical Q&As
Mac OS X offers game developers state-of-the-art audio, 2D and 3D graphics, networking capabilities, and human interface features. With OpenGL, Quartz, Velocity Engine, and the Mac OS X development tools and frameworks, Apple provides developers with everything they need to build or port exciting and compelling games.

Games Resources
A guided introduction and learning path to developing games for Mac OS X.  
Document Descriptions
On Off
Display

Sort by
Title
Sorted by
Topic
Sort by
Date
Carbon Full Screen Conundrums (HTML)
QA1068: Describes the available Mac OS X DrawSprocket services.
Carbon 2001-08-20
CGBitmapContextCreate Supported Color Spaces (HTML)
QA1037: Lists the color space and alpha info combinations currently supported by CGBitmapContextCreate.
Carbon 2004-09-09
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Carbon 1997-03-14
Context Sharing Tips (HTML) ()
QA1248: How to correctly share OpenGL contexts and what the limits on this sharing are.
Carbon 2003-06-24
Correct Setup of an AGLDrawable (HTML)
OGL02: Describes the setup of an AGLDrawable.
Carbon 2000-10-04
Current GDevice Dependencies (HTML) ()
QA1115: Describes potential problems with creating windows or ports when the current GDevice isn't the main device.
Carbon 2002-02-13
Finding Missing OpenGL CFM Entry Points (HTML) ()
QA1225: A resolution to Mac OS X 10.2 OpenGL CFM applications which break under Mac OS X 10.1.
Carbon 2002-12-23
GetProcAdress and OpenGL Entry Points (HTML) ()
QA1188: Technique for finding function pointers for OpenGL entry points in Cocoa and Carbon
Carbon 2002-11-25
How can I programmatically determine the DPI of the current video mode? (HTML) ()
QA1217: Describes how to compute the DPI for a given display in a given mode using Core Graphics.
Carbon 2002-12-02
How do I tell if a particular display is being hardware accelerated by Quartz Extreme? (HTML) ()
QA1218: Describes how to use CGDisplayUsesOpenGLAcceleration to see if a display is accelerated or not.
Carbon 2002-12-04
How do I use QuickDraw with CGDirectDisplay? (HTML)
QA1011: Explains how to draw to a CGDirectDisplay-captured display using QuickDraw.
Carbon 2001-04-11
Incorrect Inside Macintosh Volume V documentation (HTML)
Deprecated - QD15: Identifies incorrect documentation in Inside Macintosh Volume V regarding the formats of PnPixPat and BkPixPat opcodes.
Carbon 1995-09-15
Open Transport Libraries (HTML) ()
NW18: Lists the Open Transport libraries and what to link with for PowerPC and 68K.
Carbon 2000-11-03
OpenGL Sample Code (HTML)
QA1166: Describes new naming convention for OpenGL sample code
Carbon 2004-12-01
OpenGL Texture Sharing Between Contexts (HTML)
QA1031: Describes the process of creating shared OpenGL contexts and sharing textures between these contexts.
Carbon 2001-05-01
TCP/IP Option Sizes (HTML) ()
NW62: Enumerates the TCP/IP options and their sizes for Open Transport.
Carbon 1999-04-26
Updating OpenGL Contexts (HTML) ()
QA1209: When and why to update an OpenGL context in response to system and user actions.
Carbon 2003-06-19
Using Clip Region and Buffer Rectangles with OpenGL Carbon (HTML) ()
QA1222: Shows the basics of using buffer rectangles and clip regions with AGL.
Carbon 2002-12-19
Using Temporary Memory with OpenPicture (HTML)
Deprecated - QD20: Provides several techniques of causing OpenPicture to allocate temporary memory for a picture handle.
Carbon 1996-02-01
CGBitmapContextCreate Supported Color Spaces (HTML)
QA1037: Lists the color space and alpha info combinations currently supported by CGBitmapContextCreate.
Cocoa 2004-09-09
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Cocoa 1997-03-14
How can I programmatically determine the DPI of the current video mode? (HTML) ()
QA1217: Describes how to compute the DPI for a given display in a given mode using Core Graphics.
Cocoa 2002-12-02
How do I determine how much VRAM is available on my video card? (HTML)
QA1168: Using Core Graphics and IOKit to find the physical size of VRAM on installed hardware.
Cocoa 2004-10-11
How do I tell if a particular display is being hardware accelerated by Quartz Extreme? (HTML) ()
QA1218: Describes how to use CGDisplayUsesOpenGLAcceleration to see if a display is accelerated or not.
Cocoa 2002-12-04
NSTimers and Rendering Loops (HTML)
QA1385: Using Cocoa timers (NSTimer) to drive a rendering loop
Cocoa 2004-10-04
OpenGL Sample Code (HTML)
QA1166: Describes new naming convention for OpenGL sample code
Cocoa 2004-12-01
Using Interface Builder's NSOpenGLView or Custom View objects for an OpenGL application (HTML)
QA1167: Describes usage cases for both NSOpenGLViews and Custom Views for Cocoa OpenGL applications
Cocoa 2004-10-28
aglChoosePixelFormat, The Inside Scoop (HTML)
OGL01: Describes the nuances of aglChoosePixelFormat, including specific information on multi-monitor support.
Graphics & Imaging 2000-04-03
Carbon Full Screen Conundrums (HTML)
QA1068: Describes the available Mac OS X DrawSprocket services.
Graphics & Imaging 2001-08-20
CGBitmapContextCreate Supported Color Spaces (HTML)
QA1037: Lists the color space and alpha info combinations currently supported by CGBitmapContextCreate.
Graphics & Imaging 2004-09-09
Context Sharing Tips (HTML) ()
QA1248: How to correctly share OpenGL contexts and what the limits on this sharing are.
Graphics & Imaging 2003-06-24
Correct Setup of an AGLDrawable (HTML)
OGL02: Describes the setup of an AGLDrawable.
Graphics & Imaging 2000-10-04
Current GDevice Dependencies (HTML) ()
QA1115: Describes potential problems with creating windows or ports when the current GDevice isn't the main device.
Graphics & Imaging 2002-02-13
Debugging Graphics with QuartzDebug (HTML) ()
QA1236: Explains how to use QuartzDebug to debug graphics issues.
Graphics & Imaging 2003-02-25
Finding Missing OpenGL CFM Entry Points (HTML) ()
QA1225: A resolution to Mac OS X 10.2 OpenGL CFM applications which break under Mac OS X 10.1.
Graphics & Imaging 2002-12-23
GetProcAdress and OpenGL Entry Points (HTML) ()
QA1188: Technique for finding function pointers for OpenGL entry points in Cocoa and Carbon
Graphics & Imaging 2002-11-25
How can I programmatically determine the DPI of the current video mode? (HTML) ()
QA1217: Describes how to compute the DPI for a given display in a given mode using Core Graphics.
Graphics & Imaging 2002-12-02
How do I determine how much VRAM is available on my video card? (HTML)
QA1168: Using Core Graphics and IOKit to find the physical size of VRAM on installed hardware.
Graphics & Imaging 2004-10-11
How do I tell if a particular display is being hardware accelerated by Quartz Extreme? (HTML) ()
QA1218: Describes how to use CGDisplayUsesOpenGLAcceleration to see if a display is accelerated or not.
Graphics & Imaging 2002-12-04
How do I use QuickDraw with CGDirectDisplay? (HTML)
QA1011: Explains how to draw to a CGDirectDisplay-captured display using QuickDraw.
Graphics & Imaging 2001-04-11
Is ColorSync thread safe? (HTML) ()
QA1261: Discusses ColorSync thread-safety issues.
Graphics & Imaging 2003-04-17
NSTimers and Rendering Loops (HTML)
QA1385: Using Cocoa timers (NSTimer) to drive a rendering loop
Graphics & Imaging 2004-10-04
OpenGL Sample Code (HTML)
QA1166: Describes new naming convention for OpenGL sample code
Graphics & Imaging 2004-12-01
OpenGL Texture Sharing Between Contexts (HTML)
QA1031: Describes the process of creating shared OpenGL contexts and sharing textures between these contexts.
Graphics & Imaging 2001-05-01
Preserving embedded ICC profiles when using QuickTime Graphics Importer/Exporters (HTML) ()
QA1145: Shows how to preserve the embedded ICC profile when using the QuickTime Graphics Importer/Exporter routines
Graphics & Imaging 2002-09-04
QDFlushPortBuffer (HTML) ()
QD65: Describes a possible solution for window update problems under Carbon.
Graphics & Imaging 2000-11-08
Setting the preferred CMM programatically? (HTML)
QA1086: Uses the NCMConcatProfileSet structure to specify the CMM to be used to make the CMWorldRef with the NCWConcatColorWorld function.
Graphics & Imaging 2001-10-24
Updating OpenGL Contexts (HTML) ()
QA1209: When and why to update an OpenGL context in response to system and user actions.
Graphics & Imaging 2003-06-19
Using Clip Region and Buffer Rectangles with OpenGL Carbon (HTML) ()
QA1222: Shows the basics of using buffer rectangles and clip regions with AGL.
Graphics & Imaging 2002-12-19
Using Interface Builder's NSOpenGLView or Custom View objects for an OpenGL application (HTML)
QA1167: Describes usage cases for both NSOpenGLViews and Custom Views for Cocoa OpenGL applications
Graphics & Imaging 2004-10-28
HID Manager Event Data Underruns (HTML)
QA1038: Explains how to correctly handle HID Manager event queue data underruns.
Human Interface Device & Force Feedback 2001-06-13
Retain Counts of io_object_t Objects in IOKit.framework (HTML) ()
QA1195: Distinguishes between the retain counts of an I/O Kit kernel object and its io_object_t user space proxy.
Human Interface Device & Force Feedback 2002-09-04
Avoiding Pauses When Looping Audio files with QuickTime (HTML)
QA1371: Demonstrates how to avoid pauses when looping audio files with QuickTime
Music & Audio 2004-09-08
Accessing HTTPS Proxy Settings (HTML) ()
QA1234: Describes how to programatically access Secure Web Proxy information.
Networking 2003-02-19
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Networking 1997-03-14
Getting a Packet Trace (HTML) ()
QA1176: Lists tools available for looking at the network packets on the wire.
Networking 2004-07-13
Internet Connect Speed (HTML) ()
QA1165: Describes how to get the modem connection speed from the System Configuration framework dynamic store.
Networking 2003-03-26
T_DATA_REQ vs M_DATA TPI Message Blocks (HTML) ()
NW42: Explains why OT passes data to a TPI module using M_DATA message blocks instead of M_PROTO+T_DATA_REQ.
Networking 1996-10-25
TCP/IP Option Sizes (HTML) ()
NW62: Enumerates the TCP/IP options and their sizes for Open Transport.
Networking 1999-04-26
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Performance 1997-03-14
HID Manager Event Data Underruns (HTML)
QA1038: Explains how to correctly handle HID Manager event queue data underruns.
Performance 2001-06-13
OTScheduleDeferredTask When Task Running (HTML) ()
NW52: Describes what happens when you use OTScheduleDefferedTask to schedule a task that is running.
Performance 1997-10-13
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Porting 1997-03-14
Current GDevice Dependencies (HTML) ()
QA1115: Describes potential problems with creating windows or ports when the current GDevice isn't the main device.
Porting 2002-02-13
QDFlushPortBuffer (HTML) ()
QD65: Describes a possible solution for window update problems under Carbon.
Porting 2000-11-08
Setting environment variables for user processes (HTML)
QA1067: Tells how to set environment variables for user processes.
Porting 2001-10-25